package in.lib.exception;
import in.lib.manager.UserManager;
import in.model.CrashReport;
import in.model.Settings;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Random;
public class DefaultExceptionHandler implements UncaughtExceptionHandler
{
private UncaughtExceptionHandler defaultExceptionHandler;
public DefaultExceptionHandler(UncaughtExceptionHandler pDefaultExceptionHandler)
{
defaultExceptionHandler = pDefaultExceptionHandler;
}
@Override public void uncaughtException(Thread t, Throwable e)
{
sendException(e);
defaultExceptionHandler.uncaughtException(t, e);
}
public static void sendException(Throwable e)
{
sendException(e, "");
}
public static void sendException(Throwable e, String optionalMessage)
{
try
{
CrashReport report = new CrashReport();
report.setException(e);
report.setAdditionalMessage(optionalMessage);
report.setModel(android.os.Build.MODEL);
report.setManufacturer(android.os.Build.MANUFACTURER);
report.setOsVersion(android.os.Build.VERSION.RELEASE);
report.setTimestamp(System.currentTimeMillis());
report.setDeviceId(Settings.DEVICE_ID);
report.setPackageName(Settings.PACKAGE_NAME);
report.setVersion(Settings.VERSION);
report.setVersionCode(Settings.VERSION_CODE);
report.setUserId(UserManager.getUserId());
Random generator = new Random();
int random = generator.nextInt(99999);
String filename = Integer.toString(random) + ".stacktrace";
ExceptionHandler.writeFile(ExceptionHandler.getInstance().getFilesPath(), filename, report);
}
catch (Exception ebos)
{
ebos.printStackTrace();
}
}
}